package main

import (
	"fmt"
	"time"
)

func main() {
	// 定义有缓存的channel
	// 只有channel满了之后，添加值时才会阻塞
	// 只有channel空了之后，接收值时才会阻塞
	ch := make(chan int, 3)

	go func() {
		for i := 1; i <= 10; i++ {
			fmt.Println("in : ", i)
			ch <- i
		}
	}()
	time.Sleep(time.Second * 2)

	for i := 1; i <= 10; i++ {
		d := <-ch
		fmt.Println("out :", d)
	}
}
